package com.pactera.madp.cp.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pactera.madp.cp.api.dto.channel.*;
import com.pactera.madp.cp.api.entity.channel.ChannelCodeContactStatisticsEntity;
import com.pactera.madp.cp.api.vo.channel.*;

import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.util.List;

/**
 * ChannelCodeContactStatisticsService
 *
 * @author jun
 * @version 1.0
 * 2021/8/4 15:09
 **/
public interface ChannelCodeContactStatisticsService extends IService<ChannelCodeContactStatisticsEntity> {

    void saveContact(Integer corpId);

    ChannelCodeContactDetailsVO channelCodeDetails(ChannelCodeContrastDetailsDTO dto);

    List<ChannelCodeChartDataVO> getChannelCodeChartDate(ChannelCodeChartDataDTO dto);

    Page<ChannelCodeTableDateVO> getChannelCodeTableDate(Page page, ChannelCodeTableDateDTO channelCodeTableDateDTO);

    Page<List<ChannelCodeTableDateDetailsVO>> getChannelCodeTableDateDetails(Page page, ChannelCodeTableDateDetailsDTO dto);

    void getChannelCodeTableDateDetailsExcel(HttpServletResponse response, OutputStream out,ChannelCodeTableDateDetailsDTO dto);

    Page<List<ChannelCodeTableEmployeeVO>> getChannelCodeTableDateEmployee(Page page, ChannelCodeTableEmployeeDTO dto);

    Page<List<ChannelCodeTableDateDetailsVO>> getChannelCodeTableEmployeeDetails(Page page, ChannelCodeTableEmployeeDetailsDTO dto);

    void getChannelCodeTableExcel(ChannelCodeTableDateDTO channelCodeTableDateDTO, HttpServletResponse response, OutputStream out);

    void getChannelCodeTableEmployeeExcel(ChannelCodeTableEmployeeDTO dto, HttpServletResponse response, OutputStream out);

    void getChannelCodeTableEmployeeDetailsExcel(HttpServletResponse response, OutputStream out,ChannelCodeTableEmployeeDetailsDTO dto);

    List<ChannelCodeContrastDetailsVO> getChannelCodeContrastDetails(ChannelCodeContrastDetailsDTO dto);

    void getChannelCodeContrastDetailsExcel(HttpServletResponse response, OutputStream out,ChannelCodeContrastDetailsDTO dto);

    List<ChannelCodeContrastLineChartVO> getChannelCodeContrastLineChart(ChannelCodeContrastLineChartDTO dto);

}
